<?php
class CategoriesController extends AppController {
	var $uses = array('Category');
    public function index() {
        $categories = $this->Category->generateTreeList(null, null, null, '&nbsp;&nbsp;&nbsp;');
        $this->set(compact('categories'));
    }
	
	function add() {
		if (!empty($this -> data) ) {
			$this->Category->save($this -> data);
			$this->Session->setFlash('Loại sản phẩm mới đã được thêm vào danh sách');
			$this->redirect(array('action' => 'index'));
		} else {
			$parents[0] = "[ Top ]";
			$categories = $this->Category->generateTreeList(null,null,null," - ");
			if($categories) {
				foreach ($categories as $key=>$value)
				$parents[$key] = $value;
			}
			$this->set(compact('parents'));
		}
	}

	function edit($id=null) {
		if (!empty($this->data)) {
			if($this->Category->save($this->data)==false){
				$this->Session->setFlash('Bị lỗi không lưu được');
			}
			$this->redirect(array('action'=>'index'));
		} else {
			if($id==null) die("No ID received");
			$this->data = $this->Category->read(null, $id);
			$parents[0] = "[ Top ]";
			$categories = $this->Category->generateTreeList(null,null,null," - ");
			
			if($categories){
				foreach ($categories as $key=>$value){
					$parents[$key] = $value;
				}
			}
			$this->set(compact('parents'));
		}
	}

	function delete($id=null) {
		if($id==null) die("No ID received");
		$this->Category->id=$id;
		if($this->Category->removeFromTree($id,true)==false){
			$this->Session->setFlash('Bị lỗi không xóa được');
		}
		else {
			$this->Session->setFlash('Loại sản phẩm đã được xóa khỏi danh sách');
		}
		$this->redirect(array('action'=>'index'));
	}
	
	public function movedown($id = null, $delta = null) {
		$this->Category->id = $id;
		if (!$this->Category->exists()) {
		   throw new NotFoundException(__('Invalid category'));
		}

		if ($delta > 0) {
			$this->Category->moveDown($this->Category->id, abs($delta));
		} else {
			$this->Session->setFlash('Please provide the number of positions the field should be moved down.');
		}

		$this->redirect(array('action' => 'index'), null, true);
	}
	
	public function moveup($id = null, $delta = null) {
		$this->Category->id = $id;
		if (!$this->Category->exists()) {
		   throw new NotFoundException(__('Invalid category'));
		}

		if ($delta > 0) {
			$this->Category->moveUp($this->Category->id, abs($delta));
		} else {
			$this->Session->setFlash('Please provide a number of positions the category should be moved up.');
		}

		$this->redirect(array('action' => 'index'), null, true);
	}
}
